
package com.insigma.business.qrcode.merchant.service;



import com.insigma.business.qrcode.soldier.entity.DataStatsCDO;
import com.insigma.business.qrcode.welfare.dto.CareWelfareMerchantBO;
import com.insigma.business.qrcode.merchant.dto.search.CareWelfareMerchantInfoBSearcher;
import com.insigma.business.qrcode.merchant.entity.CareWelfareMerchantInfoDO;

import java.util.Date;
import java.util.List;


public interface CareWelfareMerchantInfoService {

    
    List<CareWelfareMerchantInfoDO> search(final CareWelfareMerchantInfoBSearcher innerSearcher);

    
    CareWelfareMerchantInfoDO get(final String id);

    
    Integer insert(final CareWelfareMerchantInfoDO careWelfareMerchantInfo);

    
    Integer update(final CareWelfareMerchantInfoDO careWelfareMerchantInfo);

    
    Integer delete(final String id, final String modifierType, final String modifierId);

    
    List<CareWelfareMerchantBO> searchMerchantInfo(CareWelfareMerchantInfoBSearcher searcher);

    
    CareWelfareMerchantInfoDO getByMerchantQrString(String qrString);

    
    List<CareWelfareMerchantBO> searchAllMerchantInfo(CareWelfareMerchantInfoBSearcher searcher);

    
    int countMerchant(CareWelfareMerchantInfoBSearcher searcher);

    
    int countMerchantScreen(String areaLike);

    
    List<DataStatsCDO> countMerchantType();

    List<DataStatsCDO> countMerchantTypeAndArea(String adminAreaCode);

    
    List<DataStatsCDO> countMerchantTypeTraffic();

    List<DataStatsCDO> countMerchantTopTraffic();

    int countMerchantTraffic();

    
    List<DataStatsCDO> queryHzAreaMerchantDetail();

    List<DataStatsCDO> queryHzAreaMerchantDetail(Date beginDate, Date endDate, Boolean show);

    String getMaxCode(String code);

    
    List<CareWelfareMerchantInfoDO> listByStreetId(String streetId);

    String getAliAccountIdById(String id);

    CareWelfareMerchantInfoDO getByEntryId(String entryId);

    Integer countByAreaAndDate(String adminAreaCode, Date startDate, Date endDate);

    List<DataStatsCDO>  countMerchantTopTrafficByArea(String adminAreaCode);

    List<String> listAllPublishedMerchantId();

    List<DataStatsCDO> groupScanRecord(String adminAreaCode);

    List<CareWelfareMerchantInfoDO> getByOuterSysId(String outerSysAccountId);
}
